# 作者: 陈其志 
# 2025年02月25日11时21分14秒 
# 2716847110@qq.com
# search（只能搜索一次）
# findall：
# spilt：
# sub：
import re

# search只能找一个
ret = re.search(r"\d+", "阅读次数999,时间9999")
if ret:
    print(f"{ret.group()}")


def find_second_match(pattern, text):
    matches = re.finditer(pattern, text)
    try:
        next(matches)
        second_match = next(matches)
        return second_match.group()
    except StopIteration:
        return None


text = "abc123def456ghi789"  #
pattern = r"\d+"  # 正则表达式
second_match = find_second_match(pattern, text)
print(second_match)

# findall
ret = re.findall(r"\d+", "python = 9999, c = 7890, c++ = 12345")
print(ret)  # 返回的是列表
# sub 联系
#  匹配前一个字符出现 1 次或者无限次，即至少有 1 次
ret = re.sub(r"\d+", "111", "python = 9999, c = 7890, c++ = 12345")
print(ret)


# #  匹配前一个字符出现 0 次或者无限次，即可有可无
# ret = re.sub(r"\d*", "111", "python = 9999, c = 7890, c++ = 12345")
# print(ret)


def add(match_reslut):
    """
    :param temp_str: 匹配后的match类型的对象
    :return: 必须是字符串
    """
    match_str = match_reslut.group()
    return str(int(match_str) + 1)


ret = re.sub(r'\d+', '999', '阅读量997，阅读量998', count=2)
print(ret)

ret = re.sub(r'\d+', add, '阅读量997，阅读量998')
print(ret)

# spilt联系：
print('-' * 50)
ret = re.split(r":| ", "info:xiaoZhang 33 shandong")
print(ret)
